package com.primary.mappers;

import com.primary.controller.request.BloodbanksRequest;
import com.primary.entity.Bloodbanks;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Mapper
@Repository
public interface BloodbanksMapper {
    /**
     * 用于分页显示信息
     * @param bloodbanksRequest
     */
    List<Map<String, Object>> listByPage(BloodbanksRequest bloodbanksRequest);

    /**
     * 插入一条数据
     * @param bloodbanks
     * @return
     */
    int insertOne(Bloodbanks bloodbanks);

    /**
     * 更新一条数据,使用状态为：未使用
     * @param bloodbanks
     * @return
     */
    int updateOneById(Bloodbanks bloodbanks);

    /**
     * 更新一条数据,使用状态为：已使用
     * @param bloodbanks
     * @return
     */
    int updateOneByIdStatus(Bloodbanks bloodbanks);

    /**
     * 删除一条记录
     * @param id
     * @return
     */
    int deleteById(Integer id);

    /**
     * 方便前端选择血液信息
     * @return
     */
    List<String> queryBloodbanksForSelecter();

    /**
     * 插入发放记录后，库存管理也需要同步更新
     * @return
     */
    int updateOneForDistribute(Bloodbanks bloodbanks);

    /**
     * echarts图表
     * @return
     */
    List<Bloodbanks> queryAll();

    /**
     * echarts图表
     * @return
     */
    List<Bloodbanks> queryAllForBarAndPie();

    /**
     * Bloodbanks
     * @return
     */
    Bloodbanks queryOneByBloodInfoForDis(String bloodInfo);
}
